﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IWindow.cs" company="http://buginbox.wordpress.com/">
//   Copyright (c) GNU General Public License version 2 (GPLv2)
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

using System;
using System.ComponentModel;
using System.Windows;

namespace Wpf.Core.Behavior
{
    /// <summary>
    /// Defines the interface for the Dialogs that are shown by <see cref="DialogActivationBehavior"/> .
    /// </summary>
    public interface IWindow
    {
        /// <summary>
        /// Ocurrs when the <see cref="IWindow"/> is closed.
        /// </summary>
        event EventHandler Closed;

        /// <summary>
        /// Occurs when the <see cref="IWindow"/> is closing.
        /// </summary>
        event CancelEventHandler Closing;

        /// <summary>
        /// Gets or sets the content for the <see cref="IWindow"/> .
        /// </summary>
        object Content
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the owner control of the <see cref="IWindow"/> .
        /// </summary>
        object Owner
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the <see cref="System.Windows.Style"/> to apply to the <see cref="IWindow"/> .
        /// </summary>
        Style Style
        {
            get;
            set;
        }

        /// <summary>
        /// Opens the <see cref="IWindow"/> .
        /// </summary>
        void Show();

        /// <summary>
        /// Closes the <see cref="IWindow"/> .
        /// </summary>
        void Close();
    }
}